@Luminary
2年前 提问
1个回答

加强API接口安全的机制有哪些

GQQQy
2年前

加强API接口安全的机制有以下这些:

  • 数据加密机制:必须对数据加密,常见的做法对关键字段加密比如用户密码直接通过md5加密,现在主流的做法是使用https协议 ,在http和tcp之间添加一层加密层(SSL层),这一层负责数据的加密和解密。

  • 数据加签机制:数据加签 就是由发送者产生一段无法伪造的一段数字串,来保证数据在传输过程中不被篡改。数据在传输过程中经过加密,理论上就算被抓包,也无法对数据进行篡改,但是我们要知道加密的部分其实只是在外网,现在很多服务在内网中都需要经过很多服务跳转,所以这里的加签可以防止内网中数据被篡改。

  • 时间戳机制:但是有不法者不关心真实的数据,而是直接拿到抓取的数据包进行恶意请求。这时候可以使用时间戳机制,在每次请求中加入当前的时间,服务器端会拿到当前时间和消息中的时间相减,看看是否在一个固定的时间范围内比如5分钟内。这样恶意请求的数据包是无法更改里面时间的,所以5分钟后就视为非法请求了。

  • AppId机制:大部分网站基本都需要用户名和密码才能登录,并不是谁来能使用我的网站,这其实也是一种安全机制。对应的对外提供的接口其实也需要这么一种机制,并不是谁都可以调用,需要使用接口的用户需要在后台开通appid,提供给用户相关的密钥。在调用的接口中需要提供 appid+密钥,服务器端会进行相关的验证。

  • 限流机制:本来就是真实的用户,并且开通了appid,但是出现频繁调用接口的情况。这种情况需要给相关appid限流处理,常用的限流算法有令牌桶和漏桶算法。

  • 黑名单机制:如果此appid进行过很多非法操作,或者说专门有一个中黑系统,经过分析之后直接将此appid列入黑名单,所有请求直接返回错误码。

  • 数据合法性校验机制:这个可以说是每个系统都会有的处理机制,只有在数据是合法的情况下才会进行数据处理。每个系统都有自己的验证规则,当然也可能有一些常规性的规则,比如身份证长度和组成,电话号码长度和组成等等。